package com.foo.calidad.persist.eao;

import java.util.Collection;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import org.springframework.stereotype.Repository;

import com.foo.calidad.persist.entity.TipoProductoEntity;

@Repository
public class TipoProductoEAO implements IOperacionesEAO<TipoProductoEntity> {

	@PersistenceContext
	private EntityManager em;

	public EntityManager getEntityManger() {
		return em;
	}

	public void setEntityManager(EntityManager em) {
		this.em = em;
	}

	public TipoProductoEntity find(Long id) {
		return em.find(TipoProductoEntity.class, id);
	}

	public TipoProductoEntity create(TipoProductoEntity tipo) {
		em.persist(tipo);
		return tipo;
	}

	public TipoProductoEntity update(TipoProductoEntity tipo) {
		return em.merge(tipo);
	}

	public void delete(Long id) {
		TipoProductoEntity tipo = em.getReference(TipoProductoEntity.class, id);
		em.remove(tipo);
	}

	@SuppressWarnings("unchecked")
	public Collection<TipoProductoEntity> findAll() {
		Query query = em.createNamedQuery("TipoProductoEntity.findAll");
		return query.getResultList();
	}

}
